package zdori;

public class J06_Conversion {

	/**
	 * @param args
	 * 
	 * 
	 * 형변환 conversions
	 * 서로 다른 자료형을 처리할때 종종 형변환이 필요
	 * float avg = avg= (float)tot/3;
	 * 
	 * 
	 * 두 변수가 같은 자료형이라면 대입은 성공적으로 처리
	 * 같은 유형으로 변환하는것을 동질성 변환이라 함
	 * 하지만 다른 유형으로의 변환은 성공을 보장 못함
	 * 
	 * 기본자료형 변환에는 확대/축소 변환이 있음
	 * 
	 * 확대 형변환 widening conversion
	 * int 형에서 long 형으로의 변환처럼
	 * 첫번째 유형에 비해 두번째 유형의 크기가 같거나 클때 발생함
	 * 확대 변환시 정보 손실의 위험은 발생하지 않음
	 * 단 , 정밀도 손실이 간혹 발생할 수 있음
	 * 확대 변환은 암시적으로 일어남
	 * 
	 * 축소 형변환 narrowing conversion
	 * long 형에서 int 형으로의 변환처럼
	 * 첫번째 유형에 비해 두번째 유형의 크기가 작을때 발생함
	 * 축소 형변환은 확대 형변환과 달리 명시적이어야 함
	 * 괄호안에 변환하려는 유형을 지정 (cast 연산자)
	 * (float)는 컴파일러에게 float 형으로 변환할 것을 지시함 
	 * 정보손실이 발생할 수 있기 때문에 유의 해야함
	 * 이것은 프로그램의 결함을 야기함
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//동질성 변환 identity conversion
		int a = 90;
		int b = a;
		
		//확대 형변환
		long c = a;
		
		//축소 형변환
		int d = (int)c;
		
		//축소 형변환으로 인한 정보손실
		long e = 1234567890123L;
		int f = (int)e;
		System.out.println(e);
		System.out.println(f);
		
		
	}

}
